Because dom0 can't write eid/id into iosapics, lid can be virtualized.
Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
enable = 0;
if (lsapic->flags.enabled && enable) {
printk("enable lsapic entry: 0x%lx\n", (u64)lsapic);
+ lsapic->id = lsapic_nbr;
+ lsapic->eid = 0;
lsapic_nbr++;
} else if (lsapic->flags.enabled) {
printk("DISABLE lsapic entry: 0x%lx\n", (u64)lsapic);
lsapic->flags.enabled = 0;
+ lsapic->id = 0;
+ lsapic->eid = 0;
}
return 0;
}
IA64FAULT vcpu_get_lid(VCPU *vcpu, UINT64 *pval)
{
- /* Use real LID for domain0 until vIOSAPIC is present.
- Use EID=0, ID=vcpu_id for domU. */
- if (vcpu->domain == dom0)
- *pval = ia64_getreg(_IA64_REG_CR_LID);
- else
- *pval = vcpu->vcpu_id << 24;
+ /* Use EID=0, ID=vcpu_id. */
+ *pval = vcpu->vcpu_id << 24;
return IA64_NO_FAULT;
}